This invention relates generally to multi-processing systems.
In conventional multi-processor systems in which processor chips or modules are configured for parallel processing, microcode for the processors is developed on a development station and downloaded from the development station to each of the processors separately. Additionally, in some prior processor architectures, a processor having microcode in internal memory is capable of modifying its own instruction stream as it executes.
In multi-processing applications made up of different programs, certain parameters to be used in the execution of those programs may not be known at compile time. There are various known techniques for resolving parameter values. One approach uses dynamic linked libraries (linked at run time) to bind variables. Another approach commonly used for two programs executing on the same processor involves delayed binding of variables. In this second approach, one of the programs has a pointer to a parameter having an un-initialized value. The second program has a symbol table containing the parameter name and the pointer to the parameter. The second program determines the actual value of the parameter, performs a symbol table look-up to determine the location of the parameter and modifies the value of the parameter at that location for use by the first program. Yet another mechanism is the static linker. The static linker enables a program run on one processor to calculate values of variables to be used in a second program run on another processor and insert those values directly into the instructions of the second program as part of linking compiled sections of code for the second program.